热门 SSD 驱动中被曝多个缺陷 硬件磁盘加密可被绕过
编译:360代码卫士团队
研究人员发现可在无需知道密码的情况下,利用一些漏洞绕过著名的热门 SSD 驱动的硬件加密。
荷兰拉德伯德大学的研究员 Carlo Meijer 和Bernard van Gastel 在报告《自我加密欺骗:固态硬盘 (SSD) 加密中的弱点》中解释了他们如何修改固件或使用调试接口更改 SSD 驱动中的密码验证例程,在无需密码的情况下解密硬件加密数据。
研究人员在多个著名的流行 SSD 驱动如 Crucial MX100、CrucialMX200、Crucial MX300、Samsung 840 EVO、Samsung 850 EVO、Samsung T3 Portable 和 Samsung T5 Portable 中测试了这些方法并演示了访问这些机密驱动数据的方法。
报告指出,“我们通过逆向固件的方法分析了多个 SSD 的硬盘全磁盘加密。从理论上来讲,硬件加密提供的安全保证和软件实现类似或者更好。在现实中,我们发现很多硬件实现存在严重的安全弱点,因为很多模型允许在不了解任何机密的情况下完全恢复数据。”
更糟糕的是,由于 Windows 的BitLocker 软件加密将默认为硬盘加密(如支持),因此可利用同一个缺陷绕过它。
无需密码即访问加密文件
为绕过解密密码,研究人员根据调试端口是否可用、是否使用了ATA SED 标准或者是否使用了更新的 TCG Opal SED 标准而使用了多种方法。
这些缺陷均已被负责任地披露给 Crucial 和三星公司,以便它们准备固件更新。Crucial SSD 驱动已发布新固件,而三星仅为 T3 和 T5Portable SSD 驱动发布了新的固件。对于非携带式驱动(EVO),它们建议用户使用软件加密。
Crucial MX 100、Crucial MX 200 和 Samsung T3 Portable
对于 Crucial MX 100、CrucialMX 200 和 Samsung T3 Portable SSD 驱动而言,研究人员能够连接至驱动的 JTAG 调试接口并修改密码验证例程,这样不管是否输入密码,一直会验证为成功,这就可导致输入任何密码并解锁驱动。
CrucialMX300 也有一个 JTAG 调试端口,但它在驱动上是禁用的。
因此,研究员不得不依赖更加复杂的例程来刷新设备,而修改后的固件允许他们执行各种例程,从而解密密码或使用空密码对设备进行身份验证。
根据所使用的 SED 标准,研究员们能够通过连接至 JTAG 调试端口并修改密码验证例程的方法或通过使用损耗平衡问题来访问加密数据,从而恢复所需的加密密码,从此前的解锁实例中解锁驱动。
三星 850 EVO 并不存在损耗平衡问题,因此需要依靠依靠修改调试端口的密码验证例程。
多数现代操作系统提供软件加密以执行全部的磁盘加密。虽然 Linux 提供了软件解密,macOS、安卓和 iOS 提供了强大的软件加密,但 Windows 版本的 BitLocker 易受 SSD 缺陷影响。
使用 BitLocker 加密 Windows 中的磁盘时,如果操作系统检测到具有硬件加密的 SSD 驱动,它将自动默认使用。这样就允许通过硬件加密的BitLocker 加密的驱动遭以上提及的漏洞的解密。BitLocker 软件加密如预期般安全。
为了阻止对 SSD 硬件加密的使用,研究人员建议用户通过“Computer Configuration\AdministrativeTemplates\Windows Components\BitLocker Drive Encryption\Operating SystemDrives" 中名为 "Configure use of hardware-based encryption for operating systemdrives" 的Windows 组策略禁用对 SSD 硬件加密的使用。
该策略也可适用于可移动的和固定的数据驱动,应对其进行禁用并执行软件加密。
推荐阅读
原文链接
https://www.bleepingcomputer.com/news/security/flaws-in-popular-ssd-drives-bypass-hardware-disk-encryption/
本文由360代码卫士编译,不代表360观点,转载请注明 “转自360代码卫士www.codesafe.cn”。